//============================================================================
// Name        : Berthier.cpp
// Author      : Baggio sl
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include "Berthier.h"
#include <ext/hash_map>
#include "Hasher.h"
#include "../classes_net/URL.h"

using namespace std;
using namespace __gnu_cxx;

typedef hash_map<unsigned int, string>::value_type pr;

hash_map<unsigned int, std::string> Berthier::hashMap;
queue<URL> Berthier::urlQueue;

void Berthier::adicionaURLs ( list<URL> lista) {
	list<URL>::iterator it;
	for (it = lista.begin(); it != lista.end(); ++it) {
		string url = it->get_protocol() + it->get_dominio() + it->get_path();
		unsigned int urlHash = Hasher::simpleHash(url);
		//cout  << urlHash << endl;
		if  (hashMap[urlHash] == "")
		{
			//cout << "ENTREI!!!" << endl;
			urlQueue.push(*it);
			hashMap[urlHash] = url;
		}
		else {
			cout << "COLISAO" << endl;
			cout << "Posicao: " << urlHash << endl;
			cout << "URL anterior: " << hashMap[urlHash] << endl;
			cout << "URL perdida: " << url << endl << endl;
		}
	}
}
